package dawi.fcs.servicio.servicio.impl;

import java.util.HashMap;
import java.util.List;

import dawi.fcs.dominio.dto.DtoProceso;
import dawi.fcs.dominio.generico.GenericoBean;
import dawi.fcs.servicio.dao.ProcesoDao;
import dawi.fcs.servicio.factory.DAOFactory;
import dawi.fcs.servicio.generico.GenericoServicioImpl;
import dawi.fcs.servicio.servicio.ProcesoServicio;

public class ProcesoServicioImpl extends GenericoServicioImpl implements
		ProcesoServicio {
	private ProcesoDao dao;

	public ProcesoServicioImpl() {
		dao = DAOFactory.getFactorty(DAOFactory.MYSQL).getProcesoDao();
		this.setGenericoDao(dao);
	}

	@SuppressWarnings({ "rawtypes", "unchecked" })
	@Override
	public List<DtoProceso> listarPaginacion(HashMap<String, Object> param) {
		List list;
		list = dao.listarPorQuery("proceso.listarPaginacion", param);
		return list;
	}

	@SuppressWarnings({ "unchecked", "rawtypes" })
	@Override
	public List<DtoProceso> listarCombo() {
		List list = dao.listarPorQuery("proceso.listarCombo");
		return list;
	}

	@Override
	public Integer traerUltimoId() {
		return dao.contar("proceso.obtenerMaxid", new GenericoBean());
	}

	@Override
	public Integer buscaNombreIgual(String nombre) {
		HashMap<String, Object> map = new HashMap<String, Object>();
		map.put("nombre", nombre);
		return dao.contar("proceso.buscarPorNombre", map);
	}

	@Override
	public Integer obtenerUltimoRegistrado() {
		return dao.contar("proceso.obtenerUltimoRegistrado",
				new HashMap<String, Object>());
	}

	@Override
	public Integer contarExpedientePorProceso(Integer proceso) {
		HashMap<String, Object> map = new HashMap<String, Object>();
		map.put("proceso", proceso);
		return dao.contar("proceso.contarExpedientesPorProceso", map);
	}
}
